空间关系 Sample详情

最后更新时间:2019年7月5日

空间关系是对空间要素的拓扑关系的判断,包括相邻、相交、相离等基本的拓扑关系。空间关系是GIS空间查询、分析等应用的基础。

1

空间关系计算几何对象准备

在进行空间关系运算之前,首先需要准备进行计算的空间几何对象MGSGeometry,获取方法可参考缓冲分析。然后调用对应的接口即可实现。

2

构建空间关系分析对象

空间关系计算相关接口是由空间关系类MGSSpaRelation提供的。

MGSSpaRelation *spaRelation=[[MGSSpaRelation alloc] init];

3

空间关系计算

调用对应接口实现各种空间关系判别,以区和区之间的关系判断为例。

BOOL result = [spaRelation isGeom:geoPolygon1 containsGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 crossesGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 disjoint:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 equalsGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 overlapsGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 touchesGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 withinGeom:geoPolygon2];

其他空间关系运算接口如下表所示,可根据实际需求选择接口实现。

接口 说明
isDot:inLin: 判断点是否在折线内
isDot:inRect: 判断点是否在矩形内
isDot:inReg:flg:esp: 判断点是否在区内
isLin:inReg:esp: 判断线是否在区内
isLin:interReg: 判断线是否和区相交
isRect:inReg:esp: 判断矩形是否在区内
isRect:interLin: 判断矩形是否和线相交
isReg:inReg:esp: 判断区1是否在区2内
isReg:interReg: 判断区是否和区相交

示例效果如下所示:

空间关系.jpg